using MediatR;
using S.M.SmartMedical.Domain.DTOs;
using S.M.SmartMedical.ErrorCode;

namespace S.M.SmartMedical.API.Read.Application.Query
{
    /// <summary>
    /// 获取自助开单院区列表查询
    /// 用于查询支持自助开单的医院院区信息
    /// </summary>
    public class GetHospitalAreasQuery : IRequest<APIResult<List<HospitalAreaDto>>>
    {
        /// <summary>
        /// 用户当前位置经度（可选）
        /// 用于计算距离排序
        /// </summary>
        public decimal? UserLongitude { get; set; }

        /// <summary>
        /// 用户当前位置纬度（可选）
        /// 用于计算距离排序
        /// </summary>
        public decimal? UserLatitude { get; set; }

        /// <summary>
        /// 搜索关键词（可选）
        /// 支持按院区名称或地址搜索
        /// </summary>
        public string? SearchKeyword { get; set; }

        /// <summary>
        /// 是否只返回支持自助开单的院区
        /// 默认为true
        /// </summary>
        public bool OnlySelfServiceEnabled { get; set; } = true;
    }
}